package com.wjd.wshow.repository;

import com.wjd.wshow.entity.Catalog;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface CatalogRepository extends BaseRepository<Catalog, String> {

    /**
     * 获取指定资源id的节点
     * @param resId 资源id
     * @return 节点
     */
    @Query("SELECT c FROM #{#entityName} c WHERE c.resId = ?1")
    Catalog getByResId(String resId);

    /**
     * 获取指定资源id的直系子节点
     * @param id 资源id
     * @return 子节点集合
     */
    @Query("SELECT c FROM #{#entityName} c WHERE c.pid = ?1")
    List<Catalog> getChildren(String id);

    /**
     * 获取指定名称的子节点（同一个父节点下子节点不能重名）
     * @param name 子节点名称
     * @return 子节点
     */
    @Query("SELECT c FROM #{#entityName} c WHERE c.pid = ?1 AND c.name = ?2")
    Catalog getChildByName(String pid, String name);
}
